---
category: JavaScript
contributors:
    - joshuadelange
created: '2020-07-15'
title: '++value vs value++'
updated: '2022-08-22'
---

`++` is the increment operator adding one to the operand.
There're two variables of the operator which use `++` as prefix or postfix: `++value` and `value++`.

They have the same effect in for loops. The following loops print the same results which are the numbers from 0 to 4:

```js
for (let i = 0; i < 5; i++) {
    console.log(i);
}

// And
for (let i = 0; i < 5; ++i) {
    console.log(i);
}
```

## Differences

When returning a value, `return value++` returns the original value before the value is increased. While `return ++value` increases the value and returns the updated value.

The following `foo` and `bar` functions returns different results:

```js
const foo = (x) => x++;
const bar = (x) => ++x;

foo(1); // 1
bar(1); // 2
```

## Good to know

`value += 1` is another alternative of the postfix increment `value++`. It's worth noting that they can provide different result when using with strings.

The postfix increment `value++` will convert the value to number first, and then increase the value:

```js
let value = '5';
value++;
value; // 6
```

On the other hand, if value is a string, `value += 1` converts the second argument (`1`) to string first, and then concatenate them together.

```js
let value = '5';
value += 1;
value; // '51'
```
